// components/goods-item/goods-item.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    goods: {
      type: Object,
      value: {}
    },
    showRadio: {
      type: Boolean,
      value: false
    },
    showNumBox: {
      type: Boolean,
      value: false
    },
    isSwiper: {
      type: Boolean,
      value: false
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    // 默认的空图片
    defaultPic: 'https://img3.doubanio.com/f/movie/8dd0c794499fe925ae2ae89ee30cd225750457b4/pics/movie/celebrity-default-medium.png'
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 勾选 / 取消勾选
    radioChange(e) {
      // console.log(e)
      // 发送事件给父组件更新商品选中属性
      this.triggerEvent('goodsStateChange', {
        goods_id: e.currentTarget.dataset.goods.goods_id,
        goods_state: !e.currentTarget.dataset.goods.goods_state
      })
      // 本来是想采用把数据发送到mobx中，更新mobx里面的数据，然后CartList组件mobx里面的cart数据实现更新的，无奈小程序组件内使用observers监听数组不起效
      // 这里采用修改properties的数据，同时发送事件更新mbox里面的数据  (保持单向数据流的方式)
      this.setData({
        'goods.goods_state': !e.currentTarget.dataset.goods.goods_state
      })
    },
    // 改变商品数量
    goodsCountChange(e) {
      const count = this.properties.goods.goods_count + Number(e.currentTarget.dataset.count)
      if (count <= 0) return
      this.triggerEvent('goodsCountChange', {
        goods_id: e.currentTarget.dataset.id,
        goods_count: count
      })
      this.setData({
        'goods.goods_count': count
      })
    },
    // 删除商品
    goodsDelete(e) {
      this.triggerEvent('goodsDelete', e.currentTarget.dataset.id)
      this.setData({
        goods: {}
      })
    },
    // 去商品详情页
    goToDetail(e) {
      console.log("去商品详情", e)
      wx.navigateTo({
        url: '/pages/goods_detail/goods_detail?goods_id=' + e.currentTarget.dataset.item.goods_id,
      })
    },
  }
})
